نسبت دهی داده در فرم های وب
بممنظور نمايش داده در فرم های وب ، می توان کنترل ها را به منابع داده نسبت داد. نسبت دهی داده در فرم های وب با سا ير فرم ها ، نظير فرم های تحت ويندوز کاملا" متفا وت است . در اين مقاله به بررسی فرآيند فوق در فرم های وب و نحوه مشخص نمودن آنا ن برای کنترل ها ی متفاوت خواهيم پرداخت .
ما هيت فقط خواندنی داده ها . نسبت دهی داده در فرم های وب بر اين واقعيت استوار است که : دستيابی به داده ها در برنامه های تحت وب، عمدتا" بصورت فقط خواندنی است . در چنين حا لتی ، صفحات متنا وبا" اطلاعاتی را از يک منبع داده ئی ، نمايش خواهند داد.در اين نوع برنامه ها به موارد کمتری برخورد می شود که نياز به نوشتن داده ( در مقايسه با خواندن اطلاعات از يک منبع داده ) در يک بانک اطلاعاتی باشد . موارد زير نمونه هائی در اين زمينه می باشند ( اطلاعات از منابع داده ئی خوانده شده و در اختيار کاربران قرار می گيرند )
-
يک صفحه جستجو که حا وی اطلاعات مربوط به سا ير صفحات و يا محصولات است.اطلاعات نمايش داده شده در صفحه نتا يج ،اغلب بصورت لينک به سا ير صفحات بوده که در چنين حالتی نياز به ورود اطلاعات از طرف کاربر جهت ذخيره در بانک اطلاعاتی نخواهد بود.
-
يک صفحه که شامل نتايج مسابقات ورزشی و يا گزارش آب و هوا است .
-
يک صفحه که اطلاعات مربوط به بورس و سهام را نشا ن می دهد
-
و ساير موارد مشابه
معماری نسبت دهی داده در فرم های وب ، امکان ويرايش را فراهم نمی کند ، بدين ترتيب می با يست در صورت لزوم ، منطق مورد نطر جهت انجام اين کار توسط برنامه نويس نوشته گردد. منطق مربوط به ويرايش فرم های وب ، به عوامل متفا وتی بستگی خواهد داشت :
-
منبع داده چيست ؟
-
آيا داده ها توسط يک Dataset می توانند Cache شوند ؟
-
از چه نوع کنترل ها ئی استفاده می شود؟ ( مثلا" آيا کنترل چندين رکورد را در يک Grid نمايش داده و يا يک رکورد ( مقدار) را در يک TextBox نمايش می دهد؟)
-
قصد استفاده از چه نوع کنترل هائی را بصورت همزمان داريد ؟
نسبت دهی داده در فرم های وب کاملا" انعطاف پذير بوده و در اين راستا می توان هر يک از خصلت های يک کنترل را به يک منبع داده نسبت داد. در روش های قبلی نسبت دهی داده ، معمولا" به خصلت Display داده ئی نسبت داده می گرديد. ( مثلا" Text Property مربوط به يک Text box ) . در فرم های وب ، منبع داده می تواند شامل تقريبا" هر نوع اطلاعات قابل دسترس برای صفحات باشد . ( بانک اطلاعاتی ، سند Xml ، يک کنترل و يا پردازش ديگر و يا حتی ما حصل محا سبات انجام شده توسط شما ) . از نسبت دهی داده در موارد زير می توان استفاده کرد :
-
مقداردهی متن مورد نظر جهت نمايش در کنترل های Textbox,Lable,Button,LinkButton و ساير کنترل ها
-
مقداردهی صفحات مقصد ( HREF ) مربوط به يک Link Control
-
نسبت دادن يک کنترل Checkbox به يک مقدار منطقی ( Boolean) بمنظور تنظيم خودکار وضعيت بررسی شده کنترل
-
مقدار دهی يک فايل گرافيکی به کنترل Image از طريق نسبت دادن صفت ImageURL به ستون مربوطه ای که حاوی نام فايل گرافيکی در بانک اطلاعاتی است .
-
مقدار دهی رنگ ،فونت ،اندازه کنترل ها و ... در موارديکه می خواهيم رابط کاربری پياده سازی نمائيم که اطلاعات مربوطه بهمراه مقدار پارامترهای مورد نظر در يک بانک اطلاعاتی ذخيره شده باشند .
کنترل ها ، دو نوع اسا سی نسبت دهی داده را حمايت می نمايند:
-
کنترل های چند رکوردی ، قادر به نمايش يک و يا بيش از يک رکورد داده در هر لحظه می باشند. Repeater ,DataList , DataGrid ، نمونه هائی در اين زمينه می باشند.
-
کنترل های تک مقدار ، در هر لحظه قا در به نمايش يک مقدار خواهند بود. اغلب کنترل های سرويس دهنده Html نظير textbox,Lable,HtmlInputText,HtmlAnchor نمونه هائی از اين نوع کنترل ها می باشند.
اغلب کنترل ها امکا ن نسبت دهی خصا يص وصفات به يک مقدار داده ئی را فراهم می کنند.مثلا" کنترل DataList ، قادر به نمايش چندين رکورد در هر لحظه است اما می بايست صفت Backcolor آن را صرفا" به يک داده نسبت داد. فرآيند نسبت دهی داده ، با توجه به نوع استفاده شده ( چند رکورد ، تک مقدار ) دارای عملکردی کاملا" متفاوت با يکديگر می باشند . برای نمايش چندين رکورد می با يست يک کنترل از نوع چند رکوردی ، را به يک منبع داده که شامل چندين رکورد است نسبت داد ( نظير بردار ،يک مجموعه ،يک جدول و ...) . برای نسبت دهی يک کنترل تک مقدار ، می بايست مشخص نمود که چه صفتی می بايست نسبت داده شده و چه مقداری را می بايست به آن اختصاص يابد .
مقايسه کنترل های چند رکوردی و تک رکوردی
برخی از کنترل های فرم های وب ، قادر به نمايش چندين رکورد اطلاعاتی در يک لحظه می باشند. کنترل هائی نظير Repeater,DataList,DataGride,CheckBoxList,RadioButtonList نمونه هائی در اين زمينه می باشند . کنترل هائی نظير Label,Textbox,Checkbox,Hyperlink ، صرفا" در هر لحظه قادر به نمايش يک مقدار ( رکورد) خواهند بود.
برای نسبت دهی داده در رابطه با کنترل های چند رکوردی ، مطابق زير عمل می شود.
در رابطه با اين نوع کنترل ها ، مهم مشخص کردن منبع داده ئی است که می بايست به يکی از خصلت های مربوطه نسبت داده شود . منابع داده ئی می تواند يکی از موارد زير با شد :
-
Source Data و يا container که شا مل رکوردها ی مورد نظر جهت نسبت دهی به يکی از خصلت های مربوط به کنترل است ، می بايست مشخص گردد .
-
Data Member ، نظير نا م يک جدول
-
يک فيلد يا ستون خاص برای نمايش ، ويژگی فوق در رابطه با کنترل هائی نظير ListBox ،HtmlSelect که چندين آيتم اطلاعا تی را نمايش خواهند داد، استفاده می گردد.
کنترل های چند رکوردی را می توان به يک DataSet نسبت داد. علاوه بر امکا ن فوق می توان کنترل هائی از اين نوع را به تقريبا" هر نوع ساختما ن داده ئی که اينترفيس IEnumerable را حمايت می کنند، نيز نسبت داد:
▪ ArrayList objects
▪ Collections
▪ Data readers (objects of type OleDbDataReader and SqlDataReader)
▪ DataView objects
▪ DataRow objects
▪ DataTable objects in datasets
کنترل های تک مقدار ، صرفا" قادر به نمايش يک مقدار ( رکورد) در هر لحظه خواهند بود. مثلا" می توان صفت Text مربوط به کنترل TextBox را به يک مقدار داده ئی نسبت داد. برای نسبت دادن مقدار به کنترل هائی از اين نوع ،می توان از روش های متعددی بمنظور مشخص نمودن رکورد مورد نظر استفا ده نمود:
-
يک Data View را بگونه ای ايجا د کرد که با بکارگيری فيلتر های مربوطه صرفا" يک رکورد برگردانده شده و در ادامه می توان کنترل مورد نظر را به Data view نسبت داد. عبارت مربوط به نسبت دهی داده به اين نوع کنترل ها مطابق زير است. ا يندکس صفر [0] ، مشخص می نمايد که می بايست اولين رکورد موجود در Data View انتخا ب و به کنترل مربوطه نسبت داده شود.
DataBinder.Eval(DataView1, "[0].au_lname")
-
يک DataSet را بگونه ای تکميل کرد که شامل صرفا" يک رکورد باشد. ( روش فوق يک را هکا ر منا سب جهت استفاد ه از DataSet نخواهد بود )
-
استفاده از دستورات SQL و يا Stored Procedure جهت نسبت دهی مقدار به کنترل مورد نظر
نظرات شما عزیزان:
????????: نسبت دهی داده در فرم های وب ,